﻿using Mes.Pendant.ArrivalNotices.Dto;
using Mes.Pendant.ProductionrequisitionService.Dto;
using Mes.Pendant.SupplierManagements;
using Mes.Pendant.Warehousesettings.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace Mes.Pendant.ProductionrequisitionService.Services
{
    public interface IProductionrequisitionServices : ICrudAppService<ProductionrequisitionDto,int, PagedResultRequestDto, ProductionrequisitionDto>
    {
        /// <summary>
        /// 获取生产领料
        /// </summary>
        /// <param name="codes"></param>
        /// <param name="name"></param>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        Task<PagedResult> ProductionrequisitionList(string? codes, string? name, int page, int limit);

        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="warehousesettingDto"></param>
        /// <returns></returns>
        Task<int> CreateProductionrequisition(ProductionrequisitionDto productionrequisitionDto);

        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="warehousesettingDto"></param>
        /// <returns></returns>
        Task<int> UpdateProductionrequisition(ProductionrequisitionDto productionrequisitionDto);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<int> DeleteProductionrequisition(int id);

        /// <summary>
        /// 根据id获取数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<ProductionrequisitionDto> GetProductionrequisitionById(int id);

        /// <summary>
        /// 获取供应商数据
        /// </summary>
        /// <returns></returns>
        Task<List<SupplierManagement>> Getsuppernames();

    }
}
